package com.quhaodian.user.oauth.impl;

import com.quhaodian.user.oauth.api.OauthHandler;
import com.quhaodian.user.oauth.domain.OauthResponse;
import com.quhaodian.user.oauth.domain.TokenResponse;
import com.quhaodian.user.oauth.domain.WeiboUser;
import com.quhaodian.utils.http.Connection;
import com.quhaodian.utils.http.HttpConnection;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;

import java.io.IOException;

public class WeiBoHander implements OauthHandler {
    @Override
    public void setKey(String key) {

    }

    @Override
    public void setSecret(String secret) {

    }

    @Override
    public OauthResponse login(String access_token, String openid) {
        OauthResponse result=null;

        try {
            Connection con = HttpConnection.connect("https://api.weibo.com/2/account/get_uid.json");
            con.data("access_token", access_token);
            con.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0");
            String backjson = null;
            backjson = con.execute().body();
            JsonParser parser = new JsonParser();
            JsonElement e = parser.parse(backjson);
            String uid = e.getAsJsonObject().get("uid").getAsString();

            Connection infocon = HttpConnection.connect("https://api.weibo.com/2/users/show.json");
            infocon.data("access_token", access_token);
            infocon.data("uid", uid);
            infocon.header("User-Agent",
                    "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0");
            String uifos = infocon.execute().body();
            Gson gson = new Gson();
            result = gson.fromJson(uifos, WeiboUser.class);
        } catch (IOException e) {
            e.printStackTrace();
        }


        return result;
    }

    @Override
    public TokenResponse getToken(String code) {
        return null;
    }
}
